package com.webserver.http;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 当前类用于保存所有HTTP协议规定之内容，以便程序引用
 */
public class HttpContext {
    /**
     * 回车符
     */
    public static final char CR = 13;
    /**
     * 换行符
     */
    public static final char LF = 10;

    //资源后缀与头信息Content-Type的对应关系
    private static Map<String,String> mimeMapping = new HashMap<>();

    static{
        initMimeMapping();
    }

    private static void initMimeMapping(){
        try {
            //读取与当前类HttpContext在同一个目录下的web.properties文件初始化mimeMapping
            //java.util.Properties 专门用来操作properties文件的API
            Properties properties = new Properties();
            //读取properties文件
            properties.load(
                    //读取与HttpContext在同一个目录下的文件:web.properties
                    HttpContext.class.getResourceAsStream("web.properties")
            );
            properties.forEach(
                    (k,v)-> mimeMapping.put(k.toString(),v.toString())
            );
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {

    }

    /**
     * 根据给定的资源后缀名获取Content-Type头对应的值
     * @param ext
     * @return
     */
    public static String getMimeType(String ext){
        return mimeMapping.get(ext);
    }
}








